package movilmax.sia_corp.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.Usuario;
import apli.conectar.Conectar;
import basedatos.BaseDatos;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class CargarListaInstalaciones extends ActionSupport{

	private static final long serialVersionUID = 5845753514405633361L;
	
	private List<Listax> nodos ;
	private List<Listax> tareas ;
	private List<Listax> statusI ;
	private List<Listax> transportes ;
	
	
	@SuppressWarnings("rawtypes")
	public String cargarNodos( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	nodos=new ArrayList<Listax>();
    	String SQL="SELECT r.cod, r.descripcion FROM radio_bases r WHERE r.mostrar=1 ORDER BY r.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  nodos.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	@SuppressWarnings("rawtypes")
	public String cargartareas( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	tareas=new ArrayList<Listax>();
    	String SQL="SELECT t.cod, t.descripcion FROM tareas_empleados t WHERE t.mostrar='1' ORDER BY t.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  tareas.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	
	@SuppressWarnings("rawtypes")
	public String cargarStatusInstalaciones( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	statusI=new ArrayList<Listax>();
    	String SQL="SELECT S.cod, S.descripcion FROM status_instalaciones S WHERE S.mostrar='1'  ORDER BY S.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  statusI.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	@SuppressWarnings("rawtypes")
	public String cargarTiposTransporte( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	transportes=new ArrayList<Listax>();
    	String SQL="SELECT T.cod, T.descripcion FROM tipos_transporte T WHERE T.mostrar='1'  ORDER BY T.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  transportes.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	@SuppressWarnings("rawtypes")
	public String getJSON(){
		Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
		Conectar BASE=new Conectar();
		if(BASE.getMsg().equals("SI")){
			cargarNodos(BASE.getBaseDatos());
			cargartareas(BASE.getBaseDatos());
			cargarStatusInstalaciones(BASE.getBaseDatos());
			cargarTiposTransporte(BASE.getBaseDatos());
			BASE.getBaseDatos().cerrarConexion();
		  	return SUCCESS;
		}else{
			this.addActionError("No hay conexion al servidor");
			return ERROR;
		}
	}
	
	
	
	
	/*------------------------------------getters and setters  -------------------------------------------*/

	public List<Listax> getNodos() {
		return nodos;
	}

	public void setNodos(List<Listax> nodos) {
		this.nodos = nodos;
	}

	public List<Listax> getTareas() {
		return tareas;
	}

	public void setTareas(List<Listax> tareas) {
		this.tareas = tareas;
	}

	public List<Listax> getStatusI() {
		return statusI;
	}

	public void setStatusI(List<Listax> statusI) {
		this.statusI = statusI;
	}

	public List<Listax> getTransportes() {
		return transportes;
	}

	public void setTransportes(List<Listax> transportes) {
		this.transportes = transportes;
	}
	
	
	
	
}
